package UsingTime;

import javax.swing.*;
import javax.swing.plaf.nimbus.NimbusLookAndFeel;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class MainUsingWindow {
    public void Show() {

        //主窗口及其标题
        JFrame jFrame = new JFrame("AnimaNE");

        //设置窗口大小
        jFrame.setSize(800, 600);

        //设置窗口显示在屏幕的中间
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();  //获取到屏幕尺寸
        int x = (int) ((screenSize.getWidth() - jFrame.getWidth()) / 2);   //居中位置就是：屏幕尺寸/2 - 窗口尺寸/2
        int y = (int) ((screenSize.getHeight() - jFrame.getHeight()) / 2);

        //设置窗口皮肤
        try {
            UIManager.setLookAndFeel(new NimbusLookAndFeel());
        } catch (UnsupportedLookAndFeelException e) {
            throw new RuntimeException(e);
        }

        //位置设置好了之后再展示出来
        jFrame.setLocation(x, y);


        //设计窗口布局
        //将窗口横向分割
        JSplitPane jSplitPane = new JSplitPane();
        jSplitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);  //设定为横向分割

        //横向分割之后，我们需要指定左右两边的组件
        //用于写作的区域
        Panel writingPanel = new Panel();
        jSplitPane.setRightComponent(writingPanel);

        //用于管理作品与章节的区域
        Panel controlPanel = new Panel();
        jSplitPane.setLeftComponent(controlPanel);

        jFrame.add(jSplitPane);




        //窗口自带按钮的监视器
        jFrame.addWindowListener(new WindowAdapter() {


            //当用户点击窗口退出按钮时执行的功能
            /*
            在退出前要保证用户所编写的东西都被保存。

            如果在windowClosing中直接写入System.exit，
            当用户所编写的文件过大时，会导致退出时窗口因保存文件而卡住。

            所以在用户点击退出按钮后先将窗口隐藏，然后调用保存文件的函数，
            当windowClosing中的内容被执行完后，开始执行windowClosed中的内容，此时再真正地关闭程序。
            */
            @Override
            public void windowClosing(WindowEvent e) {  //当用户点击退出按钮时

                //隐藏窗口
                jFrame.dispose();

                //保存文件

            }

            @Override
            public void windowClosed(WindowEvent e) {   //对应窗口已关闭事件

                System.exit(0);    //窗口关闭后退出当前Java程序

            }


        });



        jFrame.setVisible(true);
    }
}
